The present invention relates to a method and apparatus for encoding private information in a MIDI datastream.
The Musical Instrument Digital Interface (MIDI) is a protocol used to transmit musical instructions to a musical device or instrument that is capable of converting the instructions into musical sounds. MIDI is becoming increasingly popular for distribution of music. Songs and accompaniment tracks are being sold in MIDI form, as well as on cassettes and compact disks. As with any form of electronic information, such as software, audio music, or MIDI music, the potential for financial loss due to piracy is a significant problem.
Historically, the software industry has employed many techniques to discourage piracy of software. For example, one such technique involves requiring a user to enter information, such as a key or serial number, at the time the software is installed. However, the music industry has done little to address the problem of piracy other than to take legal action against major distributors of pirated music.
A simple technique to provide anti-piracy security in MIDI information is to include security information, such as a serial number or other copyright and/or trademark information, in MIDI text events included in the MIDI information. Such security information is easy to add to the MIDI information and would provide the capability of tracking the original owner should pirated copies appear on the market. However, a problem arises in that information in MIDI text events would be very easy to locate and alter or remove from the MIDI information. A need arises for a technique by which security information which may easily be included in MIDI information, yet which is difficult to locate and alter or remove.
The present invention is apparatus and method for encoding, decoding, and encoding and decoding security information in a Musical Instrument Digital Interface (MIDI). In order perform encoding, musical information and security information are received. The musical information is encoded to generate a plurality of MIDI events. The security information is encoded to generate a plurality of MIDI events of a selected standard type of MIDI event, the generated MIDI events being overrun events that have no effect on a musical output. The generated MIDI events are transmitted.
In order to perform decoding, the transmitted MIDI events are received. The plurality of MIDI events encoding security information are detected among the received MIDI events and the plurality of MIDI events encoding security information are decoded to recover the security information.